﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CANO.Data.DAOs;

namespace CANO.WebSite.contacts
{
	public partial class contact : System.Web.UI.Page
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			if (!Page.IsPostBack)
			{
				//Set Session variables
				Session["currentModule"] = "Contacts";
				
				//Fill Data Page
				this.fillDropDowns();
				
				//Fill Data Contact
				int currentContact = Convert.ToInt32(Request.QueryString["ContactID"]);
				if (currentContact == 0)
				{
					pnlError.Visible = true;
					pnlContactData.Visible = false;
					return;
				}
				this.fillDataUser(currentContact);

			
			}
			//Bind controls
			btnEditarContact.Click += new EventHandler(btnEditarContact_Click);
			btnImprimir.Click += new ImageClickEventHandler(btnImprimir_Click);
			btnEliminar.Click += new EventHandler(btnEliminar_Click);
			//btnImprimirContact.Click += new EventHandler(btnImprimirContact_Click);
			rptCompromisos.ItemCreated += new RepeaterItemEventHandler(rptCompromisos_ItemCreated);
			rptCompromisos.ItemDataBound += new RepeaterItemEventHandler(rptCompromisos_ItemDataBound);
		}

		void rptCompromisos_ItemDataBound(object sender, RepeaterItemEventArgs e)
		{
			throw new NotImplementedException();
		}

		void rptCompromisos_ItemCreated(object sender, RepeaterItemEventArgs e)
		{
			throw new NotImplementedException();
		}

		void btnEliminar_Click(object sender, EventArgs e)
		{
			new ContactoDAO().Delete(Convert.ToInt32(Request.QueryString["ContactID"]));
			Response.Redirect("/contacts/contacts.aspx?Deleted=True");
		}

		void btnImprimir_Click(object sender, ImageClickEventArgs e)
		{
			Response.Redirect("/contacts/contactPrint.aspx?ContactID=" + Request.QueryString["ContactID"]);
		}

		void btnEditarContact_Click(object sender, EventArgs e)
		{
			Response.Redirect("/Contacts/editContact.aspx?ContactID=" + Request.QueryString["ContactID"]);
		}

		private void fillDataUser(int contactID)
		{
			try
			{
			ContactoDAO contact = ContactoDAO.getContact(contactID.ToString());

			lblContactID.Text = contact.ContactoID.ToString();
			txtFechaOrigen.Value = contact.LastUpdateShort;
			txtNombre.Value = contact.Nombre;
			txtApellido.Value = contact.Apellido;

			//Get Telefonos
			rptTelefonos.DataSource = ContactoTelefonosDAO.getAllByContactoID(contact.ContactoID);
			rptTelefonos.DataBind();

			txtEmailPrincipal.Value = contact.Email;
			ddlLugarInfluencia.SelectedValue = contact.LugarInfluencia.ToString();
			ddlTipoPropiedad.SelectedValue = contact.TipoPropiedad.ToString();
			ddlEspecialidad.SelectedValue = contact.Especialidad.ToString();
			ddlNacionalidad.SelectedValue = contact.Nacionalidad.ToString();

			if (contact.IsPropietario == 1)
				rdbPropietarioSi.Checked = true;
			else
				rdbPropietarioNo.Checked = true;

			//Get Observaciones
			rptObservaciones.DataSource = ObservacionesDAO.getObservacionesByContactID(contact.ContactoID);
			rptObservaciones.DataBind();
			if (ObservacionesDAO.getObservacionesByContactID(contact.ContactoID).Count == 0)
				pnlNoObservaciones.Visible = true;
			
			//Get Asignaciones
			rptAsignaciones.DataSource = AsignacionesDAO.getAllByContactID(contact.ContactoID);
			rptAsignaciones.DataBind();
			if (AsignacionesDAO.getAllByContactID(contact.ContactoID).Count == 0)
			{
				pnlNoAsignaciones.Visible = true;
				pnlAsignaciones.Visible = false;
			}

			txtDireccionPersonal.Value = contact.DireccionPersonal;
			txtDNI.Value = contact.Dni;
			txtEmailSecundario.Value = contact.EmailSecundario;
			if (contact.FechaNacimiento.HasValue)
				txtFechaNacimiento.Value = contact.FechaNacimiento.Value.ToShortDateString();
			else
				txtFechaNacimiento.Value = contact.FechaNacimiento.ToString();
			
			txtCUITCUIL.Value = contact.CuilCuit;
			txtDireccionLaboral.Value = contact.DireccionLaboral;
			txtSitioWeb.Value = contact.PaginaWeb;
			ddlProfesion.SelectedValue = contact.Profesion.ToString();
			txtNotas.Value = contact.Notas;

			//Info Familiar
			if (contact.NombreConyuge != null)
				txtInfoFamiliar.Value = contact.NombreConyuge.ToString();
			//txtNombreConyuge.Value = contact.NombreConyuge.ToString();
			//if (contact.ContactoConyuge != null)
			//txtContactoConyuge.Value = contact.ContactoConyuge.ToString();
			//if (contact.NombreHijos != null)
			//txtNombreHijos.Value = contact.NombreHijos.ToString();

			//Fill Entrevistas
			rptEntrevistas.DataSource = new EntrevistaDAO().GetAllByContact(contact.ContactoID);
			rptEntrevistas.DataBind();
			if (rptEntrevistas.Controls.Count > 0)
				pnlSinEntrevistas.Visible = false;

			//Fill Compromisos
			rptCompromisos.DataSource = new CompromisoDAO().GetAllByContact(contactID);
			rptCompromisos.DataBind();
			if (rptCompromisos.Controls.Count > 0)
				pnlSinCompromisos.Visible = false;

			}
			catch (Exception)
			{
				pnlError.Visible = true;
				pnlContactData.Visible = false;
			}
		}

		private void fillDropDowns()
		{
			//Fill ddlLugarInfluencia
			ddlLugarInfluencia.DataSource = LugarInfluenciaDAO.getAll();
			ddlLugarInfluencia.DataValueField = "LugarInfluenciaID";
			ddlLugarInfluencia.DataTextField = "LugarInfluencia";
			ddlLugarInfluencia.DataBind();
			ddlLugarInfluencia.Items.Insert(0, "Contacto sin Lugar de Influencia");

			//Fill ddlTipoPropiedad
			ddlTipoPropiedad.DataSource = TipoPropiedadDAO.getAll();
			ddlTipoPropiedad.DataValueField = "TipoPropiedadID";
			ddlTipoPropiedad.DataTextField = "TipoPropiedad";
			ddlTipoPropiedad.DataBind();
			ddlTipoPropiedad.Items.Insert(0, "Contacto sin Tipo de Propiedad");

			//Fill ddlEspecialidad
			ddlEspecialidad.DataSource = EspecialidadDAO.getAll();
			ddlEspecialidad.DataValueField = "EspecialidadID";
			ddlEspecialidad.DataTextField = "Especialidad";
			ddlEspecialidad.DataBind();
			ddlEspecialidad.Items.Insert(0, "Contacto sin Especialidad");

			//Fill Nacionalidad
			ddlNacionalidad.DataSource = NacionalidadDAO.getAll();
			ddlNacionalidad.DataValueField = "NacionalidadID";
			ddlNacionalidad.DataTextField = "Nacionalidad";
			ddlNacionalidad.DataBind();
			ddlNacionalidad.Items.Insert(0, "Contacto sin Nacionalidad");
			//ddlNacionalidad.SelectedValue = "1"; // ToDo: Validar, deberia ser siempre Argentina

			//Fill TipoProfesion
			ddlProfesion.DataSource = ProfesionDAO.getAll();
			ddlProfesion.DataValueField = "TipoProfesionID";
			ddlProfesion.DataTextField = "ProfesionDesc";
			ddlProfesion.DataBind();
			ddlProfesion.Items.Insert(0, "Contacto sin Profesión");

		}


	}
}